/**
 * 基于屏宽/屏高获取 scale 值
 * @param {number} width 作为基准的宽度
 * @param {number} height 作为基准的高度
 */
export function getScale(width, height) {
    const { innerHeight, innerWidth } = window
    return Math.min(innerHeight / height, innerWidth / width)
}

/**
 * 修改 Scale 值
 * @param {HTMLElement} el 元素
 * @param {number} width 作为基准的宽度
 * @param {number} height 作为基准的高度
 */
export function setScale(el, width, height) {
    const scale = getScale(width, height)

    const transform = `translate3d(-50%, -50%, 0) scale(${scale})`
    el.style.width = width + 'px'
    el.style.height = height + 'px'
    el.style.transform = transform
    return el
}

/**
 * 修改屏幕为1920/1080像素的 Scale 值
 * @param {HTMLElement} el 元素
 * @returns 关闭 window resize 事件监听的方法
 */
export function setW1920H1080Scale(el) {
    let resize = () => setScale(el, 1920, 1080)
    setScale(el, 1920, 1080)
    window.addEventListener('resize', resize)
    return () => {
        resize && window.removeEventListener('resize', resize)
        resize = null
    }
}

/**
 *
 * @param el 元素
 * @param uiWidth 系统设计稿宽度
 * @param uiHeight 系统设计稿高度
 */
export function setDomScale(el, uiWidth, uiHeight) {
    const c = getScale(uiWidth, uiHeight)
    const transform = `translate3d(-50%, -50%, 0) scale(${c})`
    el.style.transform = transform
    return el
}
export function setDomScaleNoTranslate(el, uiWidth, uiHeight) {
    const c = getScale(uiWidth, uiHeight)
    const transform = `scale(${c})`
    el.style.transform = transform
    return el
}


